using System.Data.Entity.ModelConfiguration;
using CodeSaude.Domain.Entities;

namespace CodeSaude.Infrastructure.Data.EntityConfig
{
    public class RequisicaoExameMap : EntityTypeConfiguration<RequisicaoExame>
    {
        public RequisicaoExameMap()
        {
            // Primary Key
            HasKey(t => t.RequisicaoExameId);

            // Properties
            Property(t => t.nome_arquivo_pedido)
                .HasMaxLength(20);

            Property(t => t.situacao_exame_bioslab)
                .HasMaxLength(10);

            Property(t => t.codigo_exame_bioslab)
                .HasMaxLength(20);

            // Table & Column Mappings
            ToTable("requisicao_exame");
            Property(t => t.RequisicaoExameId).HasColumnName("identificador");
            Property(t => t.id_requisicao).HasColumnName("id_requisicao");
            Property(t => t.id_categoria).HasColumnName("id_categoria");
            Property(t => t.id_exame).HasColumnName("id_exame");
            Property(t => t.id_situacao).HasColumnName("id_situacao");
            Property(t => t.nome_arquivo_pedido).HasColumnName("nome_arquivo_pedido");
            Property(t => t.situacao_exame_bioslab).HasColumnName("situacao_exame_bioslab");
            Property(t => t.codigo_exame_bioslab).HasColumnName("codigo_exame_bioslab");

             //Relationships
            HasRequired(t => t.exame)
                .WithMany(t => t.ListaRequisicoesExame)
                .HasForeignKey(d => d.id_exame);

        }
    }
}
